<?php
class category extends top
{
	//重定义构造函数
    function __construct(){  
        parent::__construct();
        if($_SESSION['POWER']!=1 && $_SESSION['POWER']!=3){$this->jump(spUrl('main', 'index'));}
        //定义当前导航
        $this->nav_name = 'category';
        $this->page_title = '分类管理';
        $this->breadcrumb += array('1'=>array('name'=>'分类','url'=>spUrl('category')));

    }
    //构造左侧导航
    function __left_catnav($father_cat_id){
    	$cat = spClass("m_category");

    	if(isset($father_cat_id)){
    		$left_nav_result[] = array(
					'id'=>$father_cat_id,
					'name'=>"返回上一级",
					'url'=>spUrl('category','index',array('now_cat_id'=>$father_cat_id)),					
				);
			$brother_cat_info = $cat->findAll(array('father_id'=>$father_cat_id),'weight DESC');
			foreach($brother_cat_info as $val){
				$left_nav_result[] = array(
					'id'=>$val['id'],
					'name'=>$val['name'],
					'url'=>spUrl('category','index',array('now_cat_id'=>$val['id'])),					
				);
			}
		}else{
    		$left_nav_result = array(
    			array(
    				'id'=>0,
    				'name'=>'查看分类',
    				'url'=>spUrl('category','index')
    				),
    		);
   		}
		$this->left_nav_result = $left_nav_result; 	
    }

	function index(){
			$data = $this->spArgs();

			$cat = spClass("m_category");
			//添加分类
			if($data['cat_new_submit']){
				//查看分类信息
				if($data['cat_father_id']!=0){
					$cat_id_info = $cat->find(array('id'=>$data['cat_father_id']));
				}
				if(1){
					$father_link = isset($cat_id_info['father_path'])?$cat_id_info['father_path'].','.$data['cat_father_id']:'0';
					$data_insert = array(
						'name'=>$data['cat_name'],
						'father_id'=>$data['cat_father_id'],
						'father_path'=>$father_link,
						'module'=>$data['cat_module'],
						'weight'=>$data['cat_weight'],
					);
					$is_ok = $cat->create($data_insert);
					//如果是专题类，自动添加对应专题
					if($data['cat_module'] == 'page'){
						$page = spClass("m_page");
						if(!$page->create(array('editor_id'=>$_SESSION['ID'],'cat_id'=>$is_ok))) $is_ok=0;
					}
					if($is_ok){
						$data['now_cat_id'] = $data['cat_father_id'];
						$this->notice = array('success','添加成功！');
					}else{
						$data['now_cat_id'] = isset($cat_id_info['father_id'])?$cat_id_info['father_id']:0;
						$this->notice = array('danger','添加出错！');
					}
				}else{
					$data['now_cat_id'] = isset($cat_id_info['father_id'])?$cat_id_info['father_id']:0;
					$this->notice = array('danger','填写有误！');
				}
			}

			//删除分类
			if($data['cat_delete']){
				//查看分类信息
				if($data['cat_id']!=0){
					$cat_id_info = $cat->find(array('id'=>$data['cat_id']));
				}
				$data['now_cat_id'] = isset($cat_id_info['father_id'])?$cat_id_info['father_id']:0;

				//删除分类下内容，将子分类放入默认一级分类
				$is_ok_1 = $cat->delete('id='.$data['cat_id']);
				$is_ok_2 = $cat->update('father_id='.$data['cat_id'],array('father_id'=>1));
				switch($data['cat_module']){
					case 'article':
						$model = spClass("m_article");
						break;
					case 'picture':
						$model = spClass("m_picture");
						break;
					case 'page':
						$model = spClass("m_page");
						break;
					case 'url':
						$model = spClass("m_url");
				}
				$is_ok_3 = $model->delete(array('cat_id'=>$data['cat_id']));

				if($is_ok_1&&$is_ok_2&&$is_ok_3){
					$this->notice = array('success','分类删除成功！');
				}else{
					$this->notice = array('danger','分类删除出错！');
				}		
			}

			//更新分类
			if($data['cat_update']){
				//查看分类信息
				if($data['cat_id']!=0){
					$cat_id_info = $cat->find(array('id'=>$data['cat_id']));
				}
				$data['now_cat_id'] = isset($cat_id_info['father_id'])?$cat_id_info['father_id']:0;
				if(1){
					if(isset($data['cat_name'])&&isset($data['weight'])){
						$data_update = array(
							'name'=>$data['cat_name'],
							'weight'=>$data['weight'],
						);
					}elseif(isset($data['visible'])){
						$data_update = array('visible'=>$data['visible']);
					}												

					if($cat->update('id='.$data['cat_id'],$data_update)){
						$this->notice = array('success','更新成功！');
					}else{
						$this->notice = array('danger','更新出错！');
					}
				}else{
					$this->notice = array('danger','更新有误！');
				}
			}

			//获取当前分类
			$now_cat_id = is_numeric($data['now_cat_id'])?$data['now_cat_id']:0;
					
			if($now_cat_id!=0){
				//调出当前分类信息	
				$now_cat_info = $cat->find(array('id'=>$now_cat_id));
				
				if(!$now_cat_info){ echo "wrong!"; break;} //错误提示，待处理
				
				$this->now_cat_info = $now_cat_info;				
				
				//构造左侧导航
				$this->__left_catnav($now_cat_info['father_id']);
				$this->left_nav_id = $now_cat_id;

				//构造面包屑导航
				if($now_cat_info['father_path']!='0'){
					$father_cat_id_arr = explode(',', $now_cat_info['father_path']);
					$father_cat_id_condition = "id=".implode(" OR id=", $father_cat_id_arr);
					$breadcrumb_arr = $cat->findAll($father_cat_id_condition);
				}
				$breadcrumb_arr[] = $now_cat_info;
				foreach ($breadcrumb_arr as $key => $value) {
					$this->breadcrumb += array(
						$key+2 =>array(
							'name'=>$value['name'],
							'url'=>spUrl('category','index',array('now_cat_id'=>$value['id']))
						)
					);
				}
				$this->breadcrumb += array(
					$key+3 =>array(
						'name'=>"列表"
					)
				);
				
			}else{
				//构造左侧导航
				$this->__left_catnav();
				$this->left_nav_id = 0;
				$this->breadcrumb += array(
					'2' =>array(
						'name'=>"列表"
					)
				);
			}

			//调出当前分类子分类信息
			$cat->linker['cat_son_count']['enabled'] = true;
			$this->cat_result = $cat->spLinker()->findAll(array('father_id'=>$now_cat_id),'weight DESC');

			$this->data_return=$data;	
	}
			
	
}